import java.util.Scanner;

import static java.lang.System.*;

public class Xiti<alltest> {
    /*
    3.9 习题
    一、填空题
    1.继承、封装、多态
    2.this
    3.private、default、protected、public
    4.静态变量
    5.private
    二、判断题
    1.√
    2.√
    3.X
    4.√
    5.X
    三、选择题
    1.D
    2.ABC
    3.A
    4.D
    5.BC
    四、简答题
    1.
    构造方法是类的一个特殊成员,它会在类实例化对象时被自动调用。而普通方法只有在使用的时候才会被调用。在定义构造方法时要求方
    法名与类名相同、在方法名的前面没有返回值类型的声明、在方法中不能使用return语句返回一个值。
    2.
    ( 1 )方法名与类名相同。
    ( 2 )在方法名的前面没有返回值类型的声明。
    ( 3 )在方法中不能使用 return 语句返回一个值,但是可以单独写 return 语句来作为方法的结束。
    3.
    Java面向对象有三大特性,封装是将对象的属性和行为封装起来,不需要让外界知道具体实现细节;继承是可以在无需重新编写原有类的情
    况下,对原有类的功能进行扩展;多态指的是在一个类中定义的属性和功能被其他类继承后,当把子类对象直接赋值给父类引用变量时,相
    同引用类型的变量调用同一个方法所呈现出的多种不同行为特性。*/
    //五、编程题
    //编程题1.
    static class Student {
        String name = new String("该学生还未命名");
        double achievement;

        public Student() {
        }

        public Student(String str, double achievement) {
            this.name = str;
            this.achievement = achievement;
        }

        void set(String str, double achievement) {
            this.name = str;
            this.achievement = achievement;
        }

        void get() {
            out.println("该学生姓名为：" + name);
            out.println("该学生成绩为：" + achievement);
        }
    }

    public static class xiti {
        public static void main(String args[]) {
            Student A = new Student();
            A.set("小美", 99);
            A.get();
            Student B = new Student("小谭", 96);
            B.get();
        }
    }

    //编程题2.
    public static class test31901 {
        public static void main(String[] args) {
            Scanner sc = new Scanner(in);
            int n;
            n = sc.nextInt();
            out.println(f(n));
        }

        static int f(int a) {
            if (a == 1)
                return 0;
            else if (a == 2)
                return 1;
            else
                return f(a - 1) + f(a - 2);
        }
    }

}

